Computer networks, such as wide area networks (WANs), can provide unicast, multicast, and broadcast services to allow communication between network participants such as a server node and one or more client nodes. Broadcast frame relay is a service used to communicate over a computer network. Multicast IP technology is another service used to communicate over a computer network. The term "broadcast" refers to a server node sending information to all of the client nodes connected to the network. The term "multicast" refers to a server node sending information to a subset of all of the client nodes connected to the network. Broadcast and multicast are network capabilities which are relatively new over WANs.
Some information providers desire to deliver information electronically by broadcasting or multicasing the information from a server node at a central location to one or more client nodes at remote customer locations via a computer network to which the server and the clients are coupled. Because broadcast and multicast network services do not provide for acknowledgment of the delivered information at all, these services can be unreliable. Such unreliability generally is undesirable and unacceptable to information providers.
A common protocol suite in use in computer networks is TCP/IP, which is the protocol used in the Internet. TCP stands for Transmission Control Protocol, and IP stands for Internet Protocol. Two file transfer protocols are available in association with TCP/IP: (i) File Transfer Protocol (FTP) which runs as an application on top of TCP and (ii) Trivial File Transfer Protocol (TFTP) which runs on top of UDP. UDP stands for User Datagram Protocol. Both TCP and UDP are transport protocols which are responsible for end-to-end delivery of information across an internetwork, i.e., a network of networks.
Both FTP and TFTP support point-to-point (i.e., unicast) file transfers only. FTP depends on TCP for reliable delivery, as TCP is a connection-oriented acknowledged transport protocol. TFTP provides its own acknowledgments for reliability, as it runs on top of UDP which is a connectionless transport service that does not support acknowledgment.
Connection-oriented protocols such as TCP require setup and tear-down of virtual circuit connections. This requires significant handshaking to set up the connection, and is not desired in some networks that are inherently connectionless oriented. An example of a network which is inherently connectionless oriented is a wireless data networking technology called Cellular Digital Packet Data (CDPD). CDPD is being deployed rapidly by the cellular carriers in North America, Latin America, and parts of the Far East. CDPD utilizes TCP/IP as the primary protocol suite used in the network. One feature of the network is channel hopping, where data channels attempt to hop away from cellular voice channels. Additionally, subscribers to wireless services are mobile, meaning a particular session may have the transmission path change as the user enters a new cell area, for example. Both situations defeat the concept of a virtual circuit, which attempts to keep a fixed path for the virtual circuit after call setup. Additionally, wireless channels are usually bandwidth constrained with higher error rates than wireline channels, so overhead should be kept to a minimum. This means that CDPD wireless networks recommend applications operate over UDP (the connectionless transport layer) only. Thus, TFTP is the file transfer protocol of choice for CDPD.
TFTP breaks files up into packets having 512 bytes of data each, and it then sends each data packet one at a time. After each data packet is sent, TFTP causes the sending node to wait for an acknowledgment from the receiving node(s) before the sending node is allowed to send the next data packet. TFTP is described, for example, in a book by Douglas E. Comer (Internetworking with TCP/IP, Volume I, Principles, Protocols, and Architecture, Second Edition, Prentice Hall, 1991, Chapter 23, pages 377-390).
While acknowledgment is a part of TFTP, the acknowledgment scheme used in TFTP becomes very inefficient as network delay becomes significant and/or is different for two or more of the receiving nodes. Like TFTP, some other known data transfer mechanisms require packet-by-packet acknowledgment, and thus these other mechanisms also are relatively slow at transferring the entire amount of data.